#ifndef _PRIMITIVES
#define _PRIMITIVES
#include "../SceneGraph.h"

#include <GL/glut.h>

class Sphere: public Geode{
	public:
		Sphere(GLdouble radius,
               GLint slices, GLint stacks);
		void render();
		void boundingSphere(Matrix4 *c, Texture *t);
	private:
		Texture *t;
		GLdouble radius;
		GLint slices;
		GLint stacks;
};	

class Cube: public Geode{
	public:
		Cube(GLdouble size);
		void render();
		void boundingSphere(Matrix4 *c, Texture *t);
	private:
		GLdouble size;
};

class Rectangle: public Geode{
	public:
		Rectangle(GLdouble x, GLdouble y, GLdouble z);
		void render();
		void boundingSphere(Matrix4 *c, Texture *t);
	private:
		Texture *t;
		GLdouble x, y, z;
};

class Plane: public Geode{
	public:
		Plane(double x, double y, double z);
		void render();
		void boundingSphere(Matrix4 *c, Texture *t);
	private:
		Texture *t;
		double x,y,z;
};

class Light: public Geode{
	public:
		Light();
		void render();
		void boundingSphere(Matrix4 *c, Texture *t);
	private:
		Texture *t;
};
#endif
